<?php

class Result
{

    // 成功
    const SUCCESS = 0;
    // 失败
    const FAIL = -1;

    public function __construct()
    {
        
    }

    /**
     * @param int          $code 错误码
     * @param string       $msg 消息
     * @param array|string $data 数据
     *
     * @return array
     */
    protected function result(int $code, string $msg, $data): array
    {
        return [
            'code'    => $code,
            'message' => lang($msg),
            'data'    => $data
        ];
    }

    /**
     * 成功
     * @param array $data 数据
     * @param string $msg 消息
     * @return array
     */
    public function success($data = [], string $msg = 'success'): array
    {
        return $this->result(self::SUCCESS, $msg, $data);
    }

    /**
     * 成功
     * @param type $msg 消息
     * @param string $data 数据
     * @return array
     */
    public function fail(string $msg = 'fail', $data = []): array
    {
        return $this->result(self::FAIL, empty($msg) ? 'fail' : $msg, $data);
    }

}
